#include <stdio.h>
#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
void my_sigchld_handle(int sig)
{
	// 当接受到信号时要调用wait函数，否则子进程会是僵尸进程
	wait(NULL);
	printf("excute wait;pid = %d\n",getpid());
}
int main(void)
{
	// 子进程结束时会执行
	signal(SIGCHLD,my_sigchld_handle);
	int pid = fork();
	if(pid > 0)
	{
		for(int i = 0;i < 66;i++)
		{
			sleep(1);
			printf("I am parent;pid = %d;count = %d\n",getpid(),i);
		}

	}
	else if( pid == 0 )
	{

		for(int i = 0;i < 6;i++)
		{
			sleep(1);
			printf("I am child;pid = %d;count = %d\n",getpid(),i);
		}
	}
	else
	{
		perror("fork error");
	}
	return 0;
}
